home *** CD-ROM | disk | FTP | other *** search
/ The Utilities Experience / The Utilities Experience - Volume 1.iso / software / misc / e-n / ifx21to21a / install_2.1a next >
Text File  |  1995-10-02  |  9KB  |  316 lines

  1. ; ImageFX 2.1a Patch Install Script
  2. ;
  3. ; Written by Thomas Krehbiel
  4. ;
  5. ; Copyright © 1995 Nova Design, Inc.
  6. ; All Rights Reserved
  7.  
  8. (
  9.  
  10.    ;================================================================
  11.    ; Procedure Definitions
  12.    ;================================================================
  13.  
  14.    (procedure RunPatch
  15.       ; pf_old = old version of file
  16.       ; pf_new = where to put new version of file
  17.       ; pf_patch = name of patch file
  18.       (
  19.          (set pf_error
  20.             (run
  21.                ("spatch \"-o%s\" \"-p%s\" \"%s\""
  22.                   pf_new
  23.                   pf_patch
  24.                   pf_old
  25.                )
  26.             )
  27.          )
  28.       )
  29.    )
  30.  
  31.    (procedure DoPatch
  32.       ; pf_name = name of file with path
  33.       ; wheredir = where old files reside
  34.       ; patchdir = where patches reside
  35.       (
  36.          (set pf_user (tackon wheredir pf_name))
  37.          (set pf_old (tackon wheredir pf_name))
  38.          (set pf_new ("%s.new" (tackon wheredir pf_name)))
  39.          (set pf_patch ("%s.pch" (tackon patchdir pf_name)))
  40.          (if (exists pf_user)
  41.             (
  42.                (working "Updating " pf_name)
  43.                (if (= 0 (exists (tackon backupdir pf_name)))
  44.                   (
  45.                      (run ("copy %s %s clone" pf_user (tackon backupdir pf_name)))
  46.                   )
  47.                )
  48.                (RunPatch)
  49.                (if pf_error
  50.                   (
  51.                      (message "Patch failed on file `" pf_user "'.")
  52.                   )
  53.                   ; else
  54.                   (
  55.                      (delete pf_user)
  56.                      (rename pf_new pf_user)
  57.                   )
  58.                )
  59.             )
  60.          )
  61.       )
  62.    )
  63.  
  64.    ;================================================================
  65.    ; Setup
  66.    ;================================================================
  67.  
  68.    ; script variables...
  69.  
  70.    (set versionname "2.1a")                     ; version number
  71.    (set programname ("ImageFX %s" versionname)) ; name of program
  72.    (set diskname1 "ImageFX_Disk1:")             ; install disk name
  73.    (set diskname2 "ImageFX_Disk2:")             ; second install disk name
  74.    (set diskname3 "ImageFX_Disk3:")             ; third install disk name
  75.    (set diskname4 "ImageFX_Disk4:")             ; fourth install disk name
  76.    (set pdiskname1 "")                          ; patch install disk name
  77.  
  78.    (set tempdir "T:")
  79.  
  80.    ; system information...
  81.  
  82.    (set osver (/ (getversion) 65536))        ; os version
  83.    (set cputype (database "cpu"))            ; cpu type
  84.  
  85.    ;-------------------
  86.    ; Pick a default directory for the installation...
  87.    (set initialdir @default-dest)            ; defaults to biggest drive
  88.    (if (getassign "ImageFX")
  89.       (
  90.          (set initialdir (getassign "ImageFX"))
  91.       )
  92.       ; else
  93.       (
  94.          (if (getassign "ImageFX2")
  95.             (
  96.                (set initialdir (getassign "ImageFX2"))
  97.                ; if we found ImageFX2:, assume user wants to keep ImageFX2:
  98.                (set assignname "ImageFX2")
  99.             )
  100.          )
  101.       )
  102.    )
  103.  
  104.    (set tryagain 1)
  105.    (while tryagain
  106.       (
  107.  
  108.          (set tryagain 0)
  109.  
  110.          ;-------------------
  111.          ; Ask where to install it...
  112.          ;(set wheredir initialdir)
  113.          (set wheredir
  114.             (askdir
  115.                (prompt "Select the directory where ImageFX is currently installed.  The files in "
  116.                        "this directory will be updated to version " versionname ".  All of your "
  117.                        "preferences will be preserved.")
  118.                (help @askdir-help)
  119.                (default initialdir)
  120.             )
  121.          )
  122.  
  123.          ;-------------------
  124.          ; Make sure it's a valid ImageFX
  125.          (set checkvar 0)
  126.          (set checkvar (+ checkvar (exists (tackon wheredir "Modules/Sys/Scale"))))
  127.          (set checkvar (+ checkvar (exists (tackon wheredir "Hooks/Sys/PaintFX"))))
  128.          (set checkvar (+ checkvar (exists (tackon wheredir "Hooks/CineMatte"))))
  129.          (if (<> 3 checkvar)
  130.             (
  131.                (message "This update only works on ImageFX 2.1.  `" wheredir "' does not appear to contain a copy of ImageFX 2.1.")
  132.                (set tryagain 1)
  133.                (set initialdir wheredir)
  134.             )
  135.          )
  136.  
  137.       )
  138.    )
  139.  
  140.    (message "The " programname " update will be installed in the drawer `" wheredir "'.  If this is correct, click `Proceed'.")
  141.  
  142.    (set @default-dest wheredir)
  143.  
  144.    ;================================================================
  145.    ; PATCH EXISTING FILES
  146.    ;================================================================
  147.  
  148.    ;-------------------
  149.    ; Begin by extracting our patch archive into the user's
  150.    ; chosen ImageFX directory.  This will be deleted at the end.
  151.  
  152.    (working "Extracting Update Files...")
  153.  
  154.    (set backupdir (tackon wheredir "Backup_Of_2.1"))
  155.    (makedir backupdir)
  156.    (makedir (tackon backupdir "Libs"))
  157.    (makedir (tackon backupdir "Modules"))
  158.    (makedir (tackon backupdir "Modules/Loaders"))
  159.    (makedir (tackon backupdir "Modules/Preview"))
  160.    (makedir (tackon backupdir "Modules/Scanner"))
  161.    (makedir (tackon backupdir "Hooks"))
  162.    (makedir (tackon backupdir "Help"))
  163.    (makedir (tackon backupdir "Rexx"))
  164.    (makedir (tackon backupdir "Rexx/AutoFX"))
  165.  
  166.    (set patchdir (tackon wheredir "Patches"))
  167.    (makedir patchdir)
  168.  
  169.    (run
  170.       ("lhex >CON:0/0//80/lhex/AUTO -a -f \"-w=%s\" x %s"
  171.          patchdir
  172.          (tackon pdiskname1 "Patches.lha")
  173.       )
  174.    )
  175.  
  176.    ;-------------------
  177.    ; ImageFX
  178.  
  179.    (set pf_name "ImageFX") (DoPatch)
  180.    (set pf_name "Browser") (DoPatch)
  181.  
  182.  
  183.    ;-------------------
  184.    ; Libs
  185.  
  186.    ; this one's kinda special
  187.    ;(set pf_archive (tackon tempdir "Libs.lha"))
  188.    (set pf_name "Libs/thumbnail.library")
  189.    (set pf_user "LIBS:thumbnail.library")
  190.    (set pf_old "LIBS:thumbnail.library")
  191.    (set pf_new "LIBS:thumbnail.library.new")
  192.    (set pf_patch (tackon patchdir "Libs/thumbnail.library.pch"))
  193.    (if (exists pf_user)
  194.       (
  195.          ; only if it was installed
  196.          (working "Updating LIBS:thumbnail.library")
  197.          (if (= 0 (exists (tackon backupdir pf_name)))
  198.             (
  199.                (run ("copy %s %s clone" pf_old (tackon backupdir pf_name)))
  200.             )
  201.          )
  202.          (RunPatch)
  203.          (if pf_error
  204.             (
  205.                (message "Patch failed on file `" pf_user "'.")
  206.             )
  207.             ; else
  208.             (
  209.                (delete pf_old)
  210.                (rename pf_new pf_old)
  211.             )
  212.          )
  213.       )
  214.    )
  215.  
  216.    ;-------------------
  217.    ; Modules
  218.  
  219.    (set pf_name "Modules/Preview/CyberWB") (DoPatch)
  220.    (set pf_name "Modules/Loaders/PostScript") (DoPatch)
  221.    (set pf_name "Modules/Loaders/BMP") (DoPatch)
  222.    (set pf_name "Modules/Scanner/Epson") (DoPatch)
  223.  
  224.  
  225.    ;-------------------
  226.    ; Hooks
  227.  
  228.    (set pf_name "Hooks/AutoFX") (DoPatch)
  229.    (set pf_name "Hooks/CMIFX") (DoPatch)
  230.    (set pf_name "Hooks/CMIFX.FP") (DoPatch)
  231.    (set pf_name "Hooks/Measure") (DoPatch)
  232.    (set pf_name "Hooks/IMP") (DoPatch)
  233.  
  234.    ;-------------------
  235.    ; Help
  236.  
  237.    (set pf_name "Help/Arexx_Loaders.guide") (DoPatch)
  238.    (set pf_name "Help/Arexx_Savers.guide") (DoPatch)
  239.  
  240.  
  241.    ;================================================================
  242.    ; INSTALL NEW FILES
  243.    ;================================================================
  244.  
  245.    ; don't need these any more
  246.    (delete "RAM:spatch")
  247.    (delete "RAM:lhex")
  248.  
  249.    (copyfiles
  250.       (prompt "")
  251.       (help "")
  252.       (source patchdir)
  253.       (dest wheredir)
  254.       (choices
  255.          "Standard.toolbox"
  256.       )
  257.    )
  258.  
  259.    (copyfiles
  260.       (prompt "")
  261.       (help "")
  262.       (source (tackon patchdir "Rexx"))
  263.       (dest (tackon wheredir "Rexx"))
  264.       (choices
  265.          "CreateNails.ifx"
  266.       )
  267.    )
  268.  
  269.    (copyfiles
  270.       (prompt "")
  271.       (help "")
  272.       (source (tackon patchdir "Rexx/AutoFX"))
  273.       (dest (tackon wheredir "Rexx/AutoFX"))
  274.       (choices
  275.          "SaveBufferAs_MPEG.ifx"
  276.       )
  277.    )
  278.  
  279.    (copyfiles
  280.       (prompt "")
  281.       (help "")
  282.       (source (tackon patchdir "Modules/Loaders"))
  283.       (dest (tackon wheredir "Modules/Loaders"))
  284.       (choices
  285.          "FlyerClip"
  286.          "PNG"
  287.       )
  288.    )
  289.  
  290.    (copyfiles
  291.       (prompt "")
  292.       (help "")
  293.       (source (tackon patchdir "Modules/Savers"))
  294.       (dest (tackon wheredir "Modules/Savers"))
  295.       (choices
  296.          ; "FlyerClip"
  297.          "PNG"
  298.       )
  299.    )
  300.  
  301.  
  302.    ; delete the patches
  303.    (run ("delete %s all quiet" patchdir))
  304.  
  305.    ; Installation complete!
  306. )
  307.  
  308. ; Revision History:
  309. ;
  310. ;  22.06.95 tek   Created.
  311. ;  25.07.95 tek   Updated for latest patches.
  312. ;  14.09.95 tek   Updated for beta release.
  313. ;  19.09.95 tek   Added guide file patches.  Fixed thumbnail.library patch.
  314. ;  26.09.95 tek   Fixed thumbnail.library patch again.
  315. ;  02.10.95 tek   Rexx and toolbox files just copied, not patched.
  316.